装饰设计模式,可以在原有技能的基础上,新增技能,降低继承所带来的耦合性,具体细节详见代码:

 

package test1;

/**
 * 装饰设计模式
 * @author pecool
 *
 */
public class Test {
	public static void main(String[] args) {
		HeiMa heima = new HeiMa(new Student());
		heima.code();
	}

}


/*
 * code接口
 */
interface Code{
	public void code();
}

/*
 * 学生从学校出来,所会技能
 */
class Student implements Code{
	public void code(){
		System.out.println("javase");
		System.out.println("javaweb");
	}
}

/*
 * 黑马培训机构包装后的技能
 */
class HeiMa implements Code {

	private Student student;
	
	//构造方法中传入学生对象
	public HeiMa(Student student){
		this.student = student;
	}
	
	//新的技能
	@Override
	public void code() {
		student.code();
		System.out.println("oracle");
		System.out.println("大数据");
		System.out.println("云计算");
	}
	
}